package org.ehe.erp.domain.quality.vo;

import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.ehe.erp.domain.product.vo.ErpProductVo;
import org.ehe.erp.domain.quality.ErpQualityFeedback;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * 质检异常反馈视图对象
 *
 * @author zhangnn
 * @className ErpQualityFeedbackVo
 * @description 质检异常反馈VO，用于数据传输和展示
 * @date 2025-09-10 15:00:00
 */
@Data
@AutoMapper(target = ErpQualityFeedback.class)
public class ErpQualityFeedbackVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 反馈ID */
    private Long id;

    /** 反馈单号 */
    private String feedbackNo;

    /** 质检任务ID */
    private Long taskId;

    private String taskNo;

    /** 质检记录ID */
    private Long recordId;

    /** 反馈记录标识 project、quality、purchase 等 **/
    private String recordType;

    /** 反馈类型（1质量问题、2物料问题、3工艺问题、4其他） */
    private Integer feedbackType;

    /** 问题描述 */
    private String problemDesc;

    /** 原因分析 */
    private String reasonAnalysis;

    /** 严重程度（1一般、2严重、3非常严重） */
    private Integer severityLevel;

    /** 处理状态（0待处理、1处理中、2已处理、3已关闭） */
    private Integer status;

    /** 反馈人 */
    private String feedbackPerson;

    private String feedbackPersonName;

    /** 反馈时间 */
    private LocalDateTime feedbackTime;

    /** 处理人ID */
    private Long handlerId;

    /** 处理人姓名 */
    private String handlerName;

    /** 处理时间 */
    private LocalDateTime handleTime;

    /** 处理结果 */
    private String handleResult;

    /** 相关批次ID列表(JSON格式) - 用于批次追溯 */
    private String relatedBatchIds;

    /** 疑似问题物料ID */
    private Long suspectedMaterialId;

    /** 疑似问题批次ID */
    private Long suspectedBatchId;

    /** 疑似问题供应商ID */
    private Long suspectedSupplierId;

    /** 创建时间 */
    private Date createTime;

    /** 更新时间 */
    private Date updateTime;

    /** 租户编号 */
    private String tenantId;

    /** 创建人 */
    private String createBy;

    /** 更新人 */
    private String updateBy;
    /**
     * 附件信息列表
     */
    private List<ErpQualityAttachmentVo> attachmentVoList;

    private String bomCode;

    private String bomName;

    private ErpProductVo productVo;


    /**
     * 审核状态
     */
    private String approveStatus;
    /**
     * 预估完成小时数
     */
    private Integer estimatedHours;
    /**
     * 任务截止时间
     */
    private LocalDateTime taskDeadline;

    /**
     * 任务是否超期
     */
    private String isTaskTimeout;

    private String productName;
}
